package zhoujunhao.rbac.view;

import zhoujunhao.rbac.domian.vo.BaseVo;
import zhoujunhao.rbac.domian.vo.Result;
import zhoujunhao.rbac.service.IBaseService;

/**
 * 视图层-基类
 *
 * @author 周均壕
 * @since 2025/6/16 22:56
 */
public abstract class Baseview<Vo extends BaseVo, IService extends IBaseService> {

    IService service;
    Vo[] cache;

    void printError(String message) {
        System.out.println("\033[31a" + message + "\033[0m");
    }

    Vo getCacheById() {
        System.out.print("请输入部门ID,ID必须是大于零的整数：");
        if (!Mainview.input.hasNextInt()) {
            Mainview.input.nextLine();
            printError("必须为整数，请重新输入");
            return null;
        }
        int id = Mainview.input.nextInt();
        Mainview.input.nextLine();
        if (id < 1) {
            printError("必须大于0，请重新输入");
            return null;
        }
        if (cache == null) {
            Result result = service.list();
            cache = (Vo[]) result.data;
        }
        Vo vo = null;
        for (Vo item : cache) {
            if (item.id == id) {
                System.out.println("该ID对应的数据是，");
                System.out.println(item);
                vo = item;
                break;
            }

        }
        if (vo == null) {
            System.out.println("没有找到该id对应的数据");
            return null;
        }
        return vo;
    }
}
